Embedded software debug tools are used in the debugging of an embedded system (e.g., a computer system with a dedicated function that is located in a larger electrical system). An embedded system includes an embedded processor that executes embedded software. It is important to debug embedded systems in order to ensure that the dedicated function to be performed by the embedded system operates as it is intended.
An example of an existing debug tool includes complex and expensive hardware, wherein the debug software stack runs on a probe, thereby requiring a powerful processor on the probe in order to run properly. Other existing debug tools include low-cost hardware wherein the debug software stack runs on a PC and issues many network/USB transactions over a high-latency connection to the embedded processor, which can result in poor performance. Another existing debug tool utilizes mid-cost hardware with marginal performance and high engineering maintenance cost, wherein the mid-cost hardware is a full-featured probe on which the entire debug software stack has been carefully written to run to debug one specific processor. Any use of the probe to debug another type of processor involves writing a new debug software stack and optimizing the same to run on the probe. Each of these existing debug tools lack the ability to utilize a PC and probe in a manner that balances efficiency and cost in order to debug an electronic system with embedded software.